import java.awt.GridLayout;
import java.net.URL;
import javax.swing.*;
import java.util.Vector;

public class GranotesGrid extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public Vector<JLabel> granotes = new Vector<JLabel>(7,0);
	
	public GranotesGrid(){
		String pathGranota = "/images/granota.png";  
		URL granota = this.getClass().getResource(pathGranota);  
		ImageIcon iconGranota = new ImageIcon(granota);  
		String pathSapo = "/images/sapo.png";  
		URL sapo = this.getClass().getResource(pathSapo);  
		ImageIcon iconSapo = new ImageIcon(sapo); 
		JLabel label = new JLabel("");  
		label.setIcon(iconGranota);
		granotes.add(0, label);
		granotes.add(1, label);
		granotes.add(2, label);
		label.setIcon(iconSapo);
		granotes.add(5,null);
		label.setIcon(iconSapo);
		granotes.add(4, label);
		granotes.add(5, label);
		granotes.add(6, label);
		
		setSize(800, 140);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel pane = new JPanel();
		GridLayout family = new GridLayout(7, 1);
		pane.setLayout(family);
		pane.add(granotes.get(0));
		pane.add(granotes.get(1));
		pane.add(granotes.get(2));
		pane.add(granotes.get(3));
		pane.add(granotes.get(4));
		pane.add(granotes.get(5));
		pane.add(granotes.get(6));
		add(pane);
		setVisible(true);
	}
	
	public int moureGranota(int posisioActual, int posicioFinal){
		posisioActual-=1;
		posicioFinal-=1;
		if(posisioActual-2<posicioFinal)return 3;
		if (posisioActual==posicioFinal) return 1;
		if (posisioActual>posicioFinal) return -1;
		if (granotes.get(posicioFinal)==null) return 2;
		granotes.add(posicioFinal, granotes.get(posisioActual));
		granotes.add(posisioActual, null);
		return 0;
	}
	
	public int moureSapo(int posisioActual, int posicioFinal){
		posisioActual-=1;
		posicioFinal-=1;
		if(posisioActual-2>posicioFinal)return 3;
		if (posisioActual==posicioFinal) return 1;
		if (posisioActual<posicioFinal) return -1;
		if (granotes.get(posicioFinal)==null) return 2;
		granotes.add(posicioFinal, granotes.get(posisioActual));
		granotes.add(posisioActual, null);
		return 0;
	}
}
